雲端結構研究
我猜很多人包括我自己都有這個問題。同樣是使用遠端的服務,對使用者來說, 根本感覺不到有什麼不同。但據說他更快更便宜更安全。所以最近研究了一下,雲端和傳統伺服器除了價格方面,是不是比傳統伺服器強。
理論上,雲端結構是被設計成讓每個元件都可以被發揮到淋漓盡致。換句話說,每個雲端元件可以專注在單一功能,更突出其效能。在這篇 The Advantage of Cloud Infrastructure: Servers are Software 他形容雲端的 server 就像在雲端上的 software ㄧ樣:以自動, on-demand的方式被啓動; 就像虛擬的資源, 沒有硬體限制; 被設計成滿足單一功能(像是單一app); 就像潮流一樣, "可以接受"隨時被淘汰(設計時有考慮到, 所以resorces is reusable)。 我知道他形容的很抽象, 但是看下去他怎麼形容傳統 server, 大概可以抓得到感覺: 需要人工花時間啟動機器; 硬體限制, 一個公司只有有限台的機器; 被設計成滿足多個功能(可以想像成OS+跑在上面的所有apps); 他沒有被設計成可以被丟棄(意思是說設計得時候沒有考慮到淘汰的問題)。
如果雲端服務不能做到像'software'的特點, 充其量也只是傳統的伺服器。如果除去傳統的缺點, 設計上一定不同, 得要更聰明, 有效率。如何做到? 基本上就是不要給一臺機器應付太繁雜的工作, 專一會更快。那篇文章後面舉了例子: 若有一臺application server, 它掌管client requests 和 admin functions (such as 處理複雜報告, 解壓縮龐大資料供下載), 而admin functions 不常用, 偏偏最耗資源。為了不影響client 端的事情, 不如分到另一臺機器上去處理, 不是更快嗎? 這是一個例子。
除了這個最近我還稍稍看了一下 Openstack 他是個還在開發中的open source project, 但令人興奮的是, 它教你怎麼 build cloud environment. 我目前只有看到它的 storage 部分, 還不是很深入的瞭解。他的 storage 是個沒有 '頭腦' 的機器, 他不是檔案系統, 不是real time system, 而是用來放置龐大資料的 long term storage。若空間不足, 你可以很輕易的用低成本水平擴展, 只需要加入更多沒頭腦機器。 如果這是為什麼雲端便宜的原因, 那麼一切就很合理化。因為我還沒透徹瞭解, 說到這裡就不敢亂講了。
雲端運算有多快?我沒用過但看過別人使用 Amazon EC2。 EC2 和S3 不同的是他有計算能力(S3可以算是剛剛提到的沒頭腦儲存裝置吧)。它裡頭已經有大部份常用的OS做選擇, 你只要在選單上輕輕點一下, 它可以在一分鐘內安裝好一個 OS。這樣的效能, 才是我們要的雲端服務吧! 那些沒有公開資料中心位置, 沒有公開他們的內部如何運作的雲端公司, 到底是真的雲端還是假的雲端, 就不知道了。
以我程設師的觀點
公司可以減少硬體的建置
團隊可以減少非常多系統工程師
開發風險也變低
不用為了單一客戶去建置一堆有的沒有的設施
等客戶跑了,這些設施會變呆帳
如果是雲端,使用者付費。客戶不付賬,系統就停止服務
雲端後端怎麼跑,一點都不用去Care
我相信MS Cloud,Google,Apple Cloud,Amazon..建置的絕對比我們建的好。不管速度,安全,容量,頻寬。
沒有人會去公布資訊中心的。他們分散在各地。基於安全還有很多因素。甚至IP都做變動的
在我們研究所。在一個草皮上拉二個貨櫃就是資料中心。如果貨櫃上沒塗上資料中心。沒人會知道的
這就是我擔心的...國內許多科技公司或電信公司一直倡導雲端服務, 他們的硬體設施能夠像國外那幾家大公司同等級嗎?如果沒有辦法, 但只要他們打出 '雲端' 名號來賣產品, 豈不是欺騙國內消費者?以使用者的角度, 到底怎麼辨別真假雲端, 也很值得探討!